package cn.xaut.二叉树;

import cn.xaut.剑指offer.m20.TreeNode;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 112. 路径总和
 */
public class demo112 {

    // 递归解法
    public boolean hasPathSum(TreeNode root, int targetSum) {

        // 递归终止条件
        if (root == null)
            return false;
        if (root.left == null && root.right == null)
            return targetSum == root.val;
    
        // 递归过程
        return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);
    }
    
    
    // 非递归解法 待解决
    public boolean hasPathSum2(TreeNode root, int targetSum) {

        if (root == null)
            return false;
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        while (!queue.isEmpty()) {
            
        }
        
        return false;
    }
}
